const publicPath = '/aihuman/'
const express = require('express');
const path = require('path');

module.exports = {
  pages: {
    index: 'src/main.js',
    formPreview: 'src/formPreview.js'
  },
  //路径前缀
  publicPath: publicPath,
  lintOnSave: true,
  productionSourceMap: false,
  transpileDependencies: ['ml-matrix'],
  chainWebpack: (config) => {
    //忽略的打包文件
    config.externals({
      'vue': 'Vue',
      'vue-router': 'VueRouter',
      'vuex': 'Vuex',
      'axios': 'axios',
      'element-ui': 'ELEMENT',
    });
    config.module
      .rule('glsl')
      .test(/\.(glsl|frag)$/)
      .use('raw')
      .loader('raw-loader')
    if (process.env.NODE_ENV === 'production') {
      // 打包时删除注释信息，防止其中存在链接地址、邮箱地址
      const minimizer = config.optimization.get('minimizer')
      minimizer[0].options.terserOptions.output.comments = false
    }

    // const entry = config.entry('app');
    // entry.add('babel-polyfill').end();
    // entry.add('classlist-polyfill').end();
    // entry.add('@/mock').end();

    // .mode('development')
    //   config.optimization.runtimeChunk({
    //     name: (entrypoint) => `runtime~${entrypoint.name}`,
    //   })
  },
  css: {
    extract: { ignoreOrder: true }
  },
  //开发模式反向代理配置，生产模式请使用Nginx部署并配置反向代理
  devServer: {
    port: 36668,
    proxy: {
      [`${publicPath}api`]: {
        // logLevel: 'debug',
        // changeOrigin: true,
        //本地服务接口地址
        // target: 'http://172.20.0.230:30010/',   //测试服务器
        // target: 'https://aimeta.huilan.com:32108/',   //测试服务器
        target: 'https://test3d.huilan.com:10081/',   //测试服务器
        ws: true,
        pathRewrite: {
          [`^${publicPath}api`]: '/aihuman/api'
        },
      },
      "/moduleLib": {
        target: `http://localhost:36668`,
        changeOrigin: true,
        pathRewrite: {
          "/moduleLib": "/aihuman/cdn",
        },
      },
      '/socket.io': {
        changeOrigin: true,
        //本地服务接口地址
        target: 'http://172.20.0.147:30010/',
        ws: true,
      },
      //配置机器人页面代理
      // '/aicos-robot': {
      //   changeOrigin: true,
      //   target: 'http://172.16.20.251:30010/',
      // }
    },
    before(app/*, server*/) {
      app.use(`${publicPath}exposeModules`, express.static(path.join(__dirname, 'exposeModules')))
    }
  }
};
